<?php
/*---------------------------------------------------------------------------*
 * コンポーネント名  : ログイン画面コントローラ
 * 最新バージョン    : v1.0
 * 作成日            : 2012/08/08
 * 担当者            : 野島賢三
 * 内容              : 新規作成
 *【改訂履歴】
 *---------------------------------------------------------------------------*/
App::uses('AppController', 'Controller');
class YosaAdminController extends AppController {

	public $uses = array('User');

	public $layout = 'login_page';
	public $components = array(
			'Session',
			'Auth' => array(
				'loginRedirect' => array('controller' => 'update_top', 'action' => 'index'),
				'logoutRedirect' => array('controller' => 'yosaadmin', 'action' => 'login'),
				'loginAction' => array('controller' => 'yosaadmin', 'action' => 'login'),
				'authenticate' => array('Form' => array('username' => 'username'))
			), 'ValidateForm'
	);

	public function beforeFilter() {
		parent::beforeFilter();
		$this->Auth->fields = array(
				'username' => 'username',
				'password' => 'password'
				);
		$this->Auth->allow('login','add');
	}

	/**
	 * 初期表示アクション
	 */
	public function index() {
		// ログイン画面に遷移させる
		$this->redirect(array('action' => 'login'));
	}

	/**
	 * ログイン時のアクション
	 */
	public function login() {
		if($this->Auth->login()) {
			// セッションにユーザ情報が保持されている場合
			return $this->redirect($this->Auth->redirect(array('controller' => 'update_top')));
		}
		if($this->request->is('post')) {
			// 入力値がある場合
			if($this->Auth->login()) {
				// ユーザID、パスワードの整合性がとれた場合
				return $this->redirect($this->Auth->redirect(array('controller' => 'update_top')));
			} else {
				// ユーザIDまたはパスワードが不正の場合
				$this->Session->setFlash(__(USER_ID.'または'.PASSWORD.'が誤っています。'),'default', array(), 'auth');
			}
		}
	}

	public function logout() {
		$this->redirect($this->Auth->logout());
	}

	/**
	 * ユーザ情報の追加は行わない為使用しない
	 */
	public function add() {
		if($this->request->is('post')) {
			// insert設定
			$this->User->create();
			if($this->User->save($this->request->data)) {
				$this->Session->setFlash(__('The user has been saved'));
// 				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The user could not be saved. Please, try again.'));
			}
		}
	}
}